package com.flxz.forum.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.flxz.common.annotation.Excel;
import com.flxz.common.core.domain.BaseEntity;

/**
 * 讨论举报对象 forum_report
 * 
 * @author fl
 * @date 2025-09-14
 */
public class ForumReport extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 举报ID */
    private Long reportId;

    /** 举报用户ID */
    @Excel(name = "举报用户ID")
    private Long userId;

    /** 目标类型（1主题 2回复） */
    @Excel(name = "目标类型", readConverterExp = "1=主题,2=回复")
    private String targetType;

    /** 目标ID */
    @Excel(name = "目标ID")
    private Long targetId;

    /** 举报原因 */
    @Excel(name = "举报原因")
    private String reportReason;

    /** 举报详细说明 */
    @Excel(name = "举报详细说明")
    private String reportContent;

    /** 处理状态（0待处理 1已处理 2已驳回） */
    @Excel(name = "处理状态", readConverterExp = "0=待处理,1=已处理,2=已驳回")
    private String reportStatus;

    /** 处理结果 */
    @Excel(name = "处理结果")
    private String handleResult;

    /** 处理人 */
    @Excel(name = "处理人")
    private String handleBy;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    public void setReportId(Long reportId) 
    {
        this.reportId = reportId;
    }

    public Long getReportId() 
    {
        return reportId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setTargetType(String targetType) 
    {
        this.targetType = targetType;
    }

    public String getTargetType() 
    {
        return targetType;
    }

    public void setTargetId(Long targetId) 
    {
        this.targetId = targetId;
    }

    public Long getTargetId() 
    {
        return targetId;
    }

    public void setReportReason(String reportReason) 
    {
        this.reportReason = reportReason;
    }

    public String getReportReason() 
    {
        return reportReason;
    }

    public void setReportContent(String reportContent) 
    {
        this.reportContent = reportContent;
    }

    public String getReportContent() 
    {
        return reportContent;
    }

    public void setReportStatus(String reportStatus) 
    {
        this.reportStatus = reportStatus;
    }

    public String getReportStatus() 
    {
        return reportStatus;
    }

    public void setHandleResult(String handleResult) 
    {
        this.handleResult = handleResult;
    }

    public String getHandleResult() 
    {
        return handleResult;
    }

    public void setHandleBy(String handleBy) 
    {
        this.handleBy = handleBy;
    }

    public String getHandleBy() 
    {
        return handleBy;
    }

    public void setHandleTime(Date handleTime) 
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime() 
    {
        return handleTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reportId", getReportId())
            .append("userId", getUserId())
            .append("targetType", getTargetType())
            .append("targetId", getTargetId())
            .append("reportReason", getReportReason())
            .append("reportContent", getReportContent())
            .append("reportStatus", getReportStatus())
            .append("handleResult", getHandleResult())
            .append("handleBy", getHandleBy())
            .append("handleTime", getHandleTime())
            .append("createTime", getCreateTime())
            .toString();
    }
}
